This invention relates generally to display devices and, more particularly, to methods and arrangements that provide various modules access to shared display device resources.
Various appliances and other common devices have front panel displays that are used to convey information to the user. For example, a video tape recorder (VCR), compact disc (CD) player, digital versatile disk (DVD) player, or cable television (CATV) control box typically have some form of a front panel display device. Machines such as these are usually designed to perform a particular function. For instance, the VCR is designed to record and play video/audio signals using a removable video tape cartridge. Thus, within these machines, the display device is typically under the rigid control of a knowledgeable display driver program that is arranged to control the information that is displayed and arbitrate accordingly if more than one process desires to display information to the user.
For multi-tasking machines, such as, for example, programmable computers, multiple-purpose appliances, and the like, designing and implementing a robust and knowledgeable display driver can be challenging, because there may be several different programs running simultaneously, each of which has specific display needs. Additionally, these various programs may have been provided by different vendors. Thus, a robust and knowledgeable display driver would need to be designed to overcome these difficulties while also providing for future growth and expansion of the machine in terms of supporting new tasks, new display requirements, new programs, etc.
To make matters worse, certain machines need to have reduced storage/processing overhead to be competitive and cost-effective. For example, it would be advantageous to provide a programmable set top box having minimal memory and/or other logic support designated for use by the internal display device (e.g., a front panel display). Employing conventional display driver techniques within an efficient set top box would tend, however, to be overly burdensome and thereby reduce the cost-effectiveness of the unit.
Consequently, there is a need for improved methods and arrangements that can be easily and/or efficiently implemented in machines having display devices that are shared by one or more processes. Preferably, the methods and arrangements will allow for future growth and expansion of the machine in terms of adding new processes, changing/removing old processes, adding new display requirements, or otherwise altering tasks associated with the machine.
The present invention provides various methods and arrangements that are easy and efficient to implement in a wide variety of machines. The machines can include one or more display devices that are shared by one or more processes. The display device can be used to simultaneously meet the display requirements of the various processes in an organized and predictable manner. The methods and arrangements allow for future growth and expansion of the machine. For example, processes can be added, changed, or removed without requiring modifications to the display driver.
Thus, in accordance with certain aspects of the present invention, a method is provided for sharing a physical display device between a plurality of processes. The method includes associating a first process with a first virtual display layer and at least a second process with a second virtual display layer, combining the first and second virtual display layers to produce a composite virtual display layer, and displaying data associated with the composite virtual display layer on the display device. The first virtual display layer and the second virtual display layer can be ordered with respect to one another, for example, with respect to a timeline or other priority scheme.
The first virtual display layer can be represented by corresponding first layer data, and the second virtual display layer can be represented by corresponding second layer data. Each of the first and second layer data includes content data that defines at least one desired state for at least one controllable element in the display device, flag data that defines at least one desired associated property for the controllable element in the display device, and mask data that selectively defines controllability over the controllable element in the display device. In this manner, for example, an element in the display device can be defined as being opaque or transparent using the mask data. For elements that are opaque, then their content (e.g., On/Off, character/code, etc.) can be set using the content data. Further properties may be associated with the opaque element using the flag data. Thus, the element may have an associated property such as, for example, selectively dimmed, selectively brightened, selectively flashed, selectively blinked, selectively colored, selectively toned, selectively patterned, and the like.
The above stated needs and others are also met by a method for displaying data on a display device. Here, the method includes creating at least one virtual display layer that defines at least a portion of the display device as being controllable, and altering the portion of the display device based on the at least one virtual display layer.
In accordance with certain other aspects of the present invention, a method for multiplexing information from one or more processes to a physical display device is provided. This method includes associating each process with a different virtual display layer, updating at least one of the associated virtual display layers with information during execution of the process, determining if portions of the associated virtual display layer are displayable, and displaying the displayable portions of the associated virtual display layer.
In accordance with still other aspects of the present invention, a computer-readable medium having stored thereon a data structure is provided. The data structure includes layer data that is associated with a program module. The layer data includes flag data representing at least one desired associated property for at least one controllable element in a display device, mask data that selectively defines controllability over the at least one controllable element in the display device, and content data that defines at least one desired state for the at least one controllable element in the display device.
An arrangement for use in a multiple tasking computer environment is also provided. Here, the arrangement includes at least one processor, memory, and at least one shared display device. The processor is configured to associate a first process with a first virtual display layer and a second process with a second virtual display layer, and logically combine corresponding layer data to form composite information. The processor is configured to output the composite information to the display device.